package com.itcodai.controller.course06;

import com.itcodai.entity.JsonResult;
import com.itcodai.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
/**
 * @author c-fanqj
 * @date 2023/3/23
 * @apiNote Swagger2的使用
 */
@RestController
@RequestMapping("/swagger")
@Api(value = "Swagger2在线接口文档") // 用于类上，标识这个类是swagger的资源
public class SwaggerTestController {

    private final static Logger logger =
            LoggerFactory.getLogger(SwaggerTestController.class);

    @GetMapping("/get/{id}")
    @ApiOperation(value = "根据用户唯一标识获取用户信息") // 用于方法，表示一个http请求的操作
    public JsonResult<User> getUserInfo(
            @PathVariable @ApiParam(value = "用户唯一标识") Long id) {
        // ApiParam 用于参数上，用来标明参数信息
        logger.info("传入的参数id：{}", id);
        // 模拟数据库中根据id获取User信息
        User user = new User(id, "倪升武", "123456");
        return new JsonResult(user);
    }

    @PostMapping("/insert")
    @ApiOperation(value = "添加用户信息")
    public JsonResult<Void> insertUser(
            @RequestBody @ApiParam(value = "用户信息") User user) {
        logger.info("传入的参数user：{}", user);
        // 处理添加逻辑
        return new JsonResult<>();
    }

}
